package br.boicotando.server;

import java.util.TimerTask;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.boicotando.dao.DaoDB;
import br.boicotando.dao.ProdutoDao;
import br.boicotando.dao.ProdutoDaoDB;
import br.boicotando.persistencia.EProduto;

public class SetorCategoriaProdutoImportacaoTarefa extends TimerTask {

	@Override
	public void run() {
		Session sess = null;
		Transaction transaction = null;
		try {
			ProdutoDao dao = new ProdutoDaoDB(sess = DaoDB.abreSessao());
			transaction = sess.beginTransaction();
			SetorCategoriaProdutoParser parser = new SetorCategoriaProdutoParser(Bau.getURLSetorCategoriaProdutoXML());
			for (EProduto produto : parser.parse()) {
				dao.salvar(produto);
			}
			transaction.commit();
			sess.close();
		} catch (Exception e) {
			if (sess != null) {
				if (transaction != null && transaction.isActive()) {
					transaction.rollback();
				}
			    if (sess.isOpen()) {
			    	sess.close();
			    }
			}
			e.printStackTrace();
		}
	}

}
